]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
screenshot: Handle window screenshot failures gracefully
authorFlorian Müllner <fmuellner@gnome.org>
Sun, 18 Oct 2020 14:01:05 +0000 (16:01 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Mon, 19 Oct 2020 15:00:04 +0000 (15:00 +0000)
meta_window_actor_get_image() may return NULL. Instead of crashing,
catch that case and return a proper error.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3258

src/shell-screenshot.c

index ff81ce338811710694df1266d2b2d96fe1be047c..1b73766e00fb6b7f1639367106466f8fd05530d6 100644 (file)
@@ -295,6 +295,15 @@ grab_window_screenshot (ShellScreenshot     *screenshot,
 
   priv->image = meta_window_actor_get_image (META_WINDOW_ACTOR (window_actor),
                                              NULL);
+
+  if (!priv->image)
+    {
+      g_task_report_new_error (screenshot, on_screenshot_written, result, NULL,
+                               G_IO_ERROR, G_IO_ERROR_FAILED,
+                               "Capturing window failed");
+      return;
+    }
+
   priv->datetime = g_date_time_new_now_local ();
 
   if (flags & SHELL_SCREENSHOT_FLAG_INCLUDE_CURSOR)